package com.ug.system.service;

import com.ug.system.entity.SysMenu;
import com.ug.system.entity.dto.SysMenuDto;
import com.ug.system.entity.vo.SysMenuTreeVO;
import com.ug.system.entity.vo.TreeSelectVO;

import java.util.List;

/**
 * @Author LY
 * @create 2024/7/16 15:56
 * @Description 菜单service
 */
public interface SysMenuService {

    /**
     * 获取菜单树
     * @param roles 角色
     */
    List<SysMenuTreeVO> getMenuTree(List<String> roles);

    /**
     * 编辑菜单
     * @param sysMenu 菜单信息
     */
    void editMenu(SysMenu sysMenu);

    /**
     * 删除菜单
     * @param menuId 菜单id
     */
    void delMenu(Long menuId);

    /**
     * 查询当前用户所有权限菜单
     * @param roles 角色
     */
    List<SysMenu> queryAllMenus(List<String> roles);

    /**
     * 获取菜单列表
     * @param sysMenuDto 查询dto
     */
    List<SysMenuTreeVO> getMenuTable(SysMenuDto sysMenuDto);

    /**
     * 通过角色获取所有授权菜单
     * @param roles 角色
     */
    List<String> getUrlsByRoles(List<String> roles);

    /**
     * 获取权限列表
     */
    List<String> getPermission();

    /**
     * 获取菜单下拉树
     */
    List<TreeSelectVO> getMenuTreeSelect();
}
